package com.woniuxy.mapper;

import com.woniuxy.entity.dto.operations.CardAddDTO;
import com.woniuxy.entity.dto.operations.CardDisplayDTO;
import com.woniuxy.entity.po.dic.Dictionary;
import com.woniuxy.entity.po.operations.Card;

import java.util.List;

/**
* @author Quan
* @description 针对表【card(充电卡管理表)】的数据库操作Mapper
* @createDate 2025-03-27 19:23:43
* @Entity com.woniuxy.entity.po.operations.Card
*/
public interface CardMapper {
	
	/** 
	 * @Description: 查询全部，之后可能会加根据条件查询
	 * @Param: []
	 * @return: java.util.List<com.woniuxy.entity.po.operations.Card>
	 * @Author: Quan
	 * @Date: 2025/3/29
	 */
	List<Card> queryAll(CardDisplayDTO cardDisplayDTO);

	/**
	 * @Description: 查询所有的vip类型
	 * @Param: []
	 * @return: java.util.List<com.woniuxy.entity.po.dic.Dictionary>
	 * @Author: Quan
	 * @Date: 2025/3/29
	 */
	List<Dictionary> queryAllMembershipLevel();

	/**
	 * @Description: 通过id对逻辑删进行修改
	 * @Param: [id]
	 * @return: void
	 * @Author: Quan
	 * @Date: 2025/3/30
	 */
	void delCardById(Long id);

	/**
	 * @Description: 通过id对carding中的condition进行修改
	 * @Param: [id]
	 * @return: void
	 * @Author: Quan
	 * @Date: 2025/3/30
	 */
	void forbiddenById(Long id);

	/**
	 * @Description: 添加充电卡
	 * @Param: [cardAddDTO]
	 * @return: void
	 * @Author: Quan
	 * @Date: 2025/3/31
	 */
	void addCard(CardAddDTO card);

	/**
	 * @Description: 通过id查询card
	 * @Param:
	 * @return:
	 * @Author: Quan
	 * @Date: 2025/3/31
	 */
	Card queryCardById(Long id);
	
	/** 
	 * @Description: 批量通过id进行删除
	 * @Param: [ids]
	 * @return: java.util.List<com.woniuxy.entity.po.operations.Card>
	 * @Author: Quan
	 * @Date: 2025/3/31
	 */
	void batchDelCardById(List<Long> ids);

	/**
	 * @Description: 通过用户id查询其对应的持有卡的量
	 * @Param: [id]
	 * @return: java.util.List<com.woniuxy.entity.po.operations.Card>
	 * @Author: Quan
	 * @Date: 2025/4/7
	 */
	List<Card> queryCardByClientId(Long id);

	/**
	 * @Description: 通过用户的列表批量获取信息
	 * @Param: [ids]
	 * @return: java.util.List<com.woniuxy.entity.po.operations.Card>
	 * @Author: Quan
	 * @Date: 2025/4/7
	 */
	List<Card> batchQueryCardByClientIds(List<Long> ids);
}




